const readline = require("readline");
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
let n;
let initStr;
rl.on("line", (line) => {
    if (n === undefined) {
        n = Number(line.trim())
    } else {
        initStr = line.trim()
        getResult(n, initStr)

        // clear
        n = initStr = undefined
    }

})

/**
 *
 * @param n {number}
 * @param initStr {string}
 */
function getResult(n, initStr) {
    initStr = initStr.split("")
    let index = initStr.length - 1;
    let a = "a"
    let targetChar = String.fromCharCode(a.charCodeAt(0) - 1 + n)
    // +1
    while (index > -1) {
        if (initStr[index] < targetChar) {
            initStr[index] = String.fromCharCode(initStr[index].charCodeAt(0) + 1)
            // 验证
            if (valid(initStr)) {
                console.log(initStr)
                return
            } else {
                // 再次循环
                index = initStr.length - 1
            }

        } else {
            // 推进
            initStr[index] = a
            index--
        }
    }

    console.log("NO") // 已经推到底了
}

// 验证是否有回文子串
function valid(str) {
    if (str.length === 1) return true
    for (let i = 0; i < str.length; i++) {
        if (i > 0 && str[i] === str[i - 1]) return false// 验证长度2
        if (i > 1 && str[i] === str[i - 2]) return false// 验证长度3

    }
    return true;
}